/*
#include "../Systems/Render/Rendering.h"
#include "../Systems/Render/DirectXClass.h"
#include "../Objects/Camera.h"
#include "../Objects/GameObject.h"
#include "../Systems/RootSystem.h"
#include "../Objects/Lights/DirectionalLight.h"
#include "../Objects/Lights/PointLight.h"
#include "../Objects/Lights/SpotLight.h"
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR pScmdline, int iCmdshow)
{
	RootSystem* rootSystem;
	rootSystem = new RootSystem;
	rootSystem->Initialize();
	float ambient1[4] = { 0.48f, 0.77f, 0.46f, 1.0f };
	float diffuse1[4] = { 0.48f, 0.77f, 0.46f, 1.0f };
	float specular1[4] = { 0.2f, 0.2f, 0.2f, 16.0f };
	float reflect[4] = { 0.0f,0.0f,0.0f,0.0f };
	Material* material1 = new Material("1", ambient1, diffuse1, specular1, reflect);
	float ambient2[4] = { 0.137f, 0.42f, 0.556f, 1.0f };
	float diffuse2[4] = { 0.137f, 0.42f, 0.556f, 1.0f };
	float specular2[4] = { 0.8f, 0.8f, 0.8f, 96.0f };
	Material* material2 = new Material("2", ambient2, diffuse2, specular2, reflect);
	GameObject* newGameObject = GameObject::CreateCube(std::vector<float>{1, -2.5, 2}, "1");
	newGameObject->UseTexture("../Game Engine Practice/src/Tests/SampleTexture.bmp", "../Game Engine Practice/src/Tests/SampleTexture.bmp", "../Game Engine Practice/src/Tests/SampleTexture.bmp");
	rootSystem->AddGameObject(newGameObject);
	newGameObject = GameObject::CreateCube(std::vector<float>{-1, -2, -2}, "2");
	newGameObject->UseMaterial(material2);
	rootSystem->AddGameObject(newGameObject);
	newGameObject = GameObject::CreateCube(std::vector<float>{-1, 0.5, 0}, "3");
	newGameObject->UseTexture("../Game Engine Practice/src/Tests/SampleTexture.bmp", "../Game Engine Practice/src/Tests/SampleTexture.bmp", "../Game Engine Practice/src/Tests/SampleTexture.bmp");
	rootSystem->AddGameObject(newGameObject);
	newGameObject = GameObject::CreateCube(std::vector<float>{1, 0, 2}, "4");
	newGameObject->UseTexture("../Game Engine Practice/src/Tests/SampleTexture.bmp", "../Game Engine Practice/src/Tests/SampleTexture.bmp", "../Game Engine Practice/src/Tests/SampleTexture.bmp");
	rootSystem->AddGameObject(newGameObject);
	newGameObject = GameObject::CreateCube(std::vector<float>{0, -0.5, -3}, "5");
	newGameObject->UseTexture("../Game Engine Practice/src/Tests/SampleTexture.bmp", "../Game Engine Practice/src/Tests/SampleTexture.bmp", "../Game Engine Practice/src/Tests/SampleTexture.bmp");
	rootSystem->AddGameObject(newGameObject);
	DirectionalLight* directionalLight = new DirectionalLight(std::vector<float>{-10, 0, 0}, "light1", std::vector<float>{0.2f, 0.2f, 0.2f, 1.0f}, std::vector<float>{0.5f, 0.5f, 0.5f, 1.0f}, std::vector<float>{0.5f, 0.5f, 0.5f, 1.0f});
	rootSystem->AddDirectionalLight(directionalLight);
	PointLight* pointLight = new PointLight(std::vector<float>{0, 10, 5}, "light2", std::vector<float>{0.3f, 0.3f, 0.3f, 1.0f}, std::vector<float>{0.7f, 0.7f, 0.7f, 1.0f}, std::vector<float>{0.7f, 0.7f, 0.7f, 1.0f}, 20.0f, std::vector<float>{0.0f, 0.1f, 0.0f});
	rootSystem->AddPointLight(pointLight);
	SpotLight* spotLight = new SpotLight(std::vector<float>{-10, -1, 1}, "light3", std::vector<float>{0.0f, 0.0f, 0.0f, 1.0f}, std::vector<float>{1.0f, 1.0f, 0.0f, 1.0f}, std::vector<float>{1.0f, 1.0f, 1.0f, 1.0f}, 10000.0f, 96.0f, std::vector<float>{1.0f, 0.0f, 0.0f});
	rootSystem->AddSpotLight(spotLight);

	rootSystem->Run();
	rootSystem->Shutdown();
}
*/